package legumes.client.ui.widgets.window;

import legumes.client.resources.PNResources;
import legumes.shared.domain.PaiementModeEnum;
import legumes.shared.domain.Store;

import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Image;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.WidgetCanvas;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.layout.VLayout;

public class PaiementModesDetailsWindow extends Window {

	private Canvas txtCanvas;
	private Store st;
	public PaiementModesDetailsWindow(Store st_) {
		super();
		st = st_;
		setWidth(550);
		setHeight(550);
		setMargin(5);
		
		setTitle("<img src=\"" + PNResources.INSTANCE.paiementModeMonnaieIcon().getURL() + "\" />&nbsp;Moyens de paiement.");
		
		setShowCloseButton(true);
        setShowMinimizeButton(false);
		setCanDrag(false);
		setCanDragReposition(false);
		setIsModal(true);
		setShowModalMask(true);
		
		txtCanvas = new Canvas();
		txtCanvas.setWidth(500);
		txtCanvas.setAutoHeight();
		txtCanvas.setContents(
				"<h3>Paiement à la livraison, et directement au point de retrait.</h3>" +
				"Vous règlez vos achats au moment où vous retirez votre commande. Aucun règlement n'est effectuez en ligne." +
				"Chaque commercant propose différents moyents de paiement. Certains de ces moyens de paiement peuvent avoir des conditions particulières. Par exemple : \"Paiement par CB accepté à paritr de 20€ d'achat\")." 
		);
		
		FlexTable ft = null;
		String acceptedPaiements;
		if( st == null){
			acceptedPaiements = "Sélectionner un commercant ou un point de vente pour connaitre les moyens de paiement acceptés.";
		} else {
			acceptedPaiements = "Vous avez sélectionné le commercant : " + st_.getStoreName() + ". Ce comerçant accepte les moyens de paiements suivants :";
			ft = new FlexTable();
			ft.setWidth("500px");
			int i=0;
			for(PaiementModeEnum pme : st_.getPaiementModes().getPaiementModes()){
				String condition = st_.getPaiementModes().getPaiementModeCondition(pme);
				ft.setWidget(i, 0, new Image(PNResources.PaiementModeImageResource.getPaiementModeImageResource(pme) ) );
				ft.setText(i, 1, pme.getDisplayName());
				ft.setText(i, 2, condition);
				i++;
			}
		}
		
		Label labAcceptedPaiements = new Label(acceptedPaiements);
		
		VLayout messageFormLayout = new VLayout();
		messageFormLayout.setMargin(10);
		messageFormLayout.setMembersMargin(10);
		if(ft!=null){
			messageFormLayout.setMembers(txtCanvas, 
					labAcceptedPaiements, 
					new WidgetCanvas(ft));
		} else {
			messageFormLayout.setMembers(txtCanvas, new WidgetCanvas(labAcceptedPaiements));
		}
		
		messageFormLayout.setAutoHeight();
		messageFormLayout.setWidth("400px");
		addItem(messageFormLayout);
		centerInPage();
		show();
	}

}
